#include <iostream>
using namespace std;

/*
	static:
		C语言	
			1 局部变量---->拓展生命周期
			2 全局变量---->限定作用域
				存储在数据段，并自动初始化为0
			3 函数-------->限定作用域

		C++：类的静态成员函数和静态成员属性
			类的静态属性存储在数据段
			普通属性和对象绑定，静态属性和类绑定

			静态属性不能呢个通过构造函数初始化,只能在类外定义
			访问(public)：
				1 对象.静态属性名
				2 类名::静态属性名


			静态函数：
				1 对象.静态成员函数
				2 类名::静态成员函数

				静态函数中不能使用类的非静态属性,
				普通函数可以使用静态和非静态属性
					
				



*/

class Example{
public:
	static int		x;
	int				y;
public:
	Example(int y)
	:y(y)
	{
	
	}

	void display() const
	{
		cout << x << ", " << y << endl;
	}

	static void func();
};

void Example::func()
{
	cout << "fun" << endl;
	cout << "x: " << x << endl;
}

//定义
int Example::x = 100;

int main(int argc, char**argv)
{
	//cout << sizeof(Example) << endl;
	Example ex(5);

	//ex.display();
	cout << ex.x << ", " << ex.y << endl;
	cout << Example::x << ", " << ex.y << endl;

	Example::x = 99;

	Example ex1(9);
	cout << ex1.x << endl;

	ex.func();
	Example::func();


	return 0;
}




